package main 

import "fmt"
import "strings"

//累加器  || 闭包  返回的func(x int) int {} 是个闭包和外包的n,str变量构成整体 ，当成类成员调用就可以
func addUper() func(int)int{
	var n int=10
	var str string="china"
	return func(x int)int{
		n=n+x
		str+="$"
		fmt.Println("str=",str)
		return n
	}
}

func makeSuffix(suffix string) func(string)string{

	return func(name string)string{

		if strings.HasSuffix(name,suffix) == false{
			return name+suffix 
		}
		return name
	}
}
func main(){

	f:=addUper()
	fmt.Println(f(1))
	fmt.Println(f(2))
	fmt.Println(f(3))

	fx:=makeSuffix(".jpg")
	fmt.Println("suffix=",fx("china"))
}